import type { GuideCategoryDetailResult, GuideCategoryListResult } from '@/api/model/guideCategoryModel';
import { GuideCategoryRequest } from '@/api/model/guideCategoryModel';
import { request } from '@/utils/request';

// API接口定义
const Api = {
  GuideCategoryList: 'manage/category/list', // 获取指南类别列表
  GuideCategoryDetail: 'manage/category', // 获取指南类别详情
  GuideCategoryAdd: 'manage/category', // 新增指南类别
  GuideCategoryUpdate: 'manage/category', // 更新指南类别
  GuideCategoryDelete: 'manage/category', // 删除指南类别
};

/**
 * 获取指南类别列表
 * @param params 查询参数
 * @returns 指南类别列表数据
 */
export function getGuideCategoryList(params?: { pageNum: number; pageSize: number }) {
  return request.get<GuideCategoryListResult>({
    url: Api.GuideCategoryList,
    params,
  });
}

/**
 * 获取指南类别详情
 * @param id 类别ID
 * @returns 指南类别详情数据
 */
export function getGuideCategoryDetail(id: number) {
  return request.get<GuideCategoryDetailResult>({
    url: `${Api.GuideCategoryDetail}/${id}`,
  });
}

/**
 * 新增指南类别
 * @param data 新增类别的数据
 */
export function addGuideCategory(data: GuideCategoryRequest) {
  return request.post({
    url: Api.GuideCategoryAdd,
    data,
  });
}

/**
 * 更新指南类别
 * @param data 更新类别的数据
 */
export function updateGuideCategory(data: GuideCategoryRequest) {
  return request.put({
    url: Api.GuideCategoryUpdate,
    data,
  });
}

/**
 * 批量删除指南类别
 * @param ids 类别ID列表
 */
export function deleteGuideCategory(ids: number[]) {
  return request.delete({
    url: `${Api.GuideCategoryDelete}/${ids}`,
  });
}
